#include<stdio.h>
#include<stdlib.h>
#include<sys/types.h>
#include<unistd.h>
#include<signal.h>

/*
 *	SIGINT : Ctrl+C
 */

#if 1

/*
 * 描述：捕捉终端CTRL+c产生的SIGINT信号
 *
 *
 * 该程序运行起来以后，通过按 CTRL+c将不再终止程序的运行。
 * 应为CTRL+c产生的SIGINT信号已经由进程中注册的SignHandler函数捕捉了。
 *
 * 该程序可以通过 Ctrl+z终止，因为组合键Ctrl+z能够产生SIGQUIT信号，而该信号的捕捉函数尚未在程序中注册。
 */
void SignHandler(int iSignNo)
{
    printf("Capture sign no:%d ",iSignNo); 
}
 
int main()
{
    signal(SIGINT,SignHandler);		// SignHandler

    while(1) 
        sleep(1); 
    return 0; 
}
#endif

#if 0
/*
 * 描述：忽略掉终端CTRL+c产生的SIGINT信号
 *
 * 该程序运行起来以后，将CTRL+C产生的SIGINT信号忽略掉了，
 * 所以CTRL＋C将不再能是该进程终止，要终止该进程，可以向进程发送SIGQUIT信号，即组合键CTRL+
 *
 */
int main()
{
    signal(SIGINT,SIG_IGN);			// SIG_IGN
 
	while(1) 
        sleep(1); 
    return 0; 
}

#endif


#if 0
/*
 * 描述：接受信号的默认处理,接受默认处理就相当于没有写信号处理程序
 */
int main()
{
    signal(SIGINT,DEF);				// DEF

    while(1) 
        sleep(1); 
    return 0; 
}

#endif

